Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

540
Vistas
Angular: token inesperado <

He configurado una aplicación angular y express con líneas de comando angular-cli y express respectivamente. Ya construí una aplicación angular con ng build y cuando quiero servirla con el servidor express, aparece el siguiente error en la consola de Google Chrome:

 Uncaught SyntaxError: Unexpected token < runtime.js:1 Uncaught SyntaxError: Unexpected token < polyfills.js:1 Uncaught SyntaxError: Unexpected token < styles.js:1 Uncaught SyntaxError: Unexpected token < vendor.js:1 Uncaught SyntaxError: Unexpected token < main.js:1

aquí está mi archivo server.js:

 . . . app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/users', usersRouter); app.use('/auth', authRouter); // Catch all other routes and return the angular index file app.get('*', (req, res) => { res.sendFile(path.join(__dirname, 'client/dist/client/index.html')); });

archivo index.html:

 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Client</title> <base href="./"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> </head> <body> <app-root></app-root> <script type="text/javascript" src="runtime.js"></script> <script type="text/javascript" src="polyfills.js"></script> <script type="text/javascript" src="styles.js"></script> <script type="text/javascript" src="vendor.js"></script> <script type="text/javascript" src="main.js"></script> </body> </html>

No hay problema con ng serve y la aplicación funcionará sin problemas y también cuando abro index.html con el navegador también funciona, creo que de alguna manera se relaciona con el servidor express.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Como dijo Mateusz, todas sus solicitudes están devolviendo el archivo index.html. Si abre las herramientas de desarrollo en Chrome y mira en la pestaña "Red" y ve las respuestas para cada uno de esos archivos, verá que el contenido de cada uno de esos archivos es en realidad el archivo index.html. Lo que debe hacer es crear una lista de excepciones para permitir que el servidor devuelva esos archivos js y otros tipos de archivos como imágenes.

 const allowed = [ '.js', '.css', '.png', '.jpg' ]; // Catch all other routes and return the angular index file app.get('*', (req, res) => { if (allowed.filter(ext => req.url.indexOf(ext) > 0).length > 0) { res.sendFile(path.resolve(`client/dist/cient/${req.url}`)); } else { res.sendFile(path.join(__dirname, 'client/dist/client/index.html')); } });
over 4 years ago · Santiago Trujillo Denunciar

0

Creo que el problema es que sus archivos de script se cargan desde el nivel raíz, lo que hace que su navegador solicite http://example.com/XXX.js . Por eso caen en la ruta del Expreso * . Esto significa que cada solicitud de XXX.js obtiene el mismo archivo index.html que el motor JS no puede analizar correctamente.

over 4 years ago · Santiago Trujillo Denunciar

0

en su cambio index.ts

 <!--doctype html--> <!DOCTYPE html>

porque la declaración <!DOCTYPE> NO distingue entre mayúsculas y minúsculas. consulta el siguiente enlace

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda